package com.xianyun.book.api;

import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.xianyun.book.dto.BookAddCmd;
import com.xianyun.book.dto.BookSearchQry;
import com.xianyun.book.dto.BookUpdateCmd;
import com.xianyun.book.dto.clientobject.BookInfoCO;

/**
 * 书籍服务
 * @author ytt
 */
public interface BookServiceI {

    /**
     * 根据书籍的ISBN码获取书籍详细信息
     * @param isbn isbn码
     * @return 书籍详情
     */
    SingleResponse<BookInfoCO> getBookInfoByIsbn(String isbn);

    /**
     * 书籍标签
     * @param tag 书籍标签
     * @return 书籍信息集
     */
    MultiResponse<BookInfoCO> searchBooksByTag(String tag);

    /**
     * 查询书籍集合
     * @param bookSearchQry 查询参数类
     * @return 书籍集合
     */
    PageResponse<BookInfoCO> searchBookListBySort(BookSearchQry bookSearchQry);

    /**
     * 书籍推荐查询
     * @param searchKey 查询KEy
     * @return 结果集
     */

    MultiResponse<String> bookSearchCompletion(String searchKey);
    /**
     * 创建上架书籍
     * @param bookAddCmd 添加书籍
     * @return 结果
     */
    Response addBookOnShelves(BookAddCmd bookAddCmd);

    /**
     * 刷新书籍详情
     * @param updateCmd 书籍详情修改
     * @return 请求结果
     */
    Response refreshBookInfo(BookUpdateCmd updateCmd);
}
